Don't export _gtk_cell_renderer_calc_offset
authorMatthias Clasen <mclasen@redhat.com>
Tue, 9 Nov 2010 13:15:06 +0000 (08:15 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 9 Nov 2010 13:15:06 +0000 (08:15 -0500)
This is just a private convenience function, and exporting _-prefixed
functions doesn't work with our libtool setup. Just do the 3 line
calculation in gail.

gtk/gtk.symbols
gtk/gtkcellrenderer.c
gtk/gtkcellrenderer.h
modules/other/gail/gailtextcell.c

index 2ef829fc7c14f50d3333168c3935c04b510475cc..cd88fdaf0b7c2538edeec655eda173b26f5db6d9 100644 (file)
@@ -602,7 +602,6 @@ gtk_cell_renderer_set_sensitive
 gtk_cell_renderer_set_visible
 gtk_cell_renderer_start_editing
 gtk_cell_renderer_stop_editing
-_gtk_cell_renderer_calc_offset
 #endif
 #endif
 
index d3a6c028c29312faa6200b1788cfaab5b4e695a5..fe8a67b482a41863ecb849627edd06786d68809c 100644 (file)
@@ -646,7 +646,7 @@ gtk_cell_renderer_get_size (GtkCellRenderer    *cell,
 
   if (cell_area)
     _gtk_cell_renderer_calc_offset (cell, cell_area, gtk_widget_get_direction (widget),
-                                   request.width, request.height, x_offset, y_offset);
+                                    request.width, request.height, x_offset, y_offset);
 }
 
 /**
index cad58df2a4feb0107eaafa53f8fe7fc22d286d45..d2abd128bd1e179253b4e580e07844e76643c420 100644 (file)
@@ -242,12 +242,12 @@ void             gtk_cell_renderer_stop_editing   (GtkCellRenderer      *cell,
 
 
 void            _gtk_cell_renderer_calc_offset    (GtkCellRenderer      *cell,
-                                                  const GdkRectangle   *cell_area,
-                                                  GtkTextDirection      direction,
-                                                  gint                  width,
-                                                  gint                  height,
-                                                  gint                 *x_offset,
-                                                  gint                 *y_offset);
+                                                   const GdkRectangle   *cell_area,
+                                                   GtkTextDirection      direction,
+                                                   gint                  width,
+                                                   gint                  height,
+                                                   gint                 *x_offset,
+                                                   gint                 *y_offset);
 
 G_END_DECLS
 
index 2cbf5bf28313f300c2a283d76a2c0b62487656b9..fa07f0e50e6dc9276ffc52571a71b54d4b1f5dfa 100644 (file)
@@ -609,10 +609,10 @@ gail_text_cell_get_character_extents (AtkText          *text,
                                         widget,
                                         &min_size, NULL);
 
-  _gtk_cell_renderer_calc_offset (GTK_CELL_RENDERER (gtk_renderer), &rendered_rect,
-                                  gtk_widget_get_direction (widget),
-                                  min_size.width, min_size.height,
-                                  &x_offset, &y_offset);
+  gtk_cell_renderer_calc_offset (GTK_CELL_RENDERER (gtk_renderer), &rendered_rect,
+                                 gtk_widget_get_direction (widget),
+                                 min_size.width, min_size.height,
+                                 &x_offset, &y_offset);
 
   layout = create_pango_layout (gtk_renderer, widget);
 
@@ -646,6 +646,8 @@ gail_text_cell_get_offset_at_point (AtkText          *text,
   GdkRectangle rendered_rect;
   PangoLayout *layout;
   gchar *renderer_text;
+  gint width, height;
+  gfloat xalign, yalign;
   gint x_offset, y_offset, index;
   gint xpad, ypad;
  
@@ -675,10 +677,12 @@ gail_text_cell_get_offset_at_point (AtkText          *text,
   gtk_cell_renderer_get_preferred_size (GTK_CELL_RENDERER (gtk_renderer),
                                         widget,
                                         &min_size, NULL);
-  _gtk_cell_renderer_calc_offset (GTK_CELL_RENDERER (gtk_renderer), &rendered_rect,
-                                  gtk_widget_get_direction (widget),
-                                  min_size.width, min_size.height,
-                                  &x_offset, &y_offset);
+  gtk_cell_renderer_get_fixed_size (GTK_CELL_RENDERER (gtk_renderer), &width, &height);
+  gtk_cell_renderer_get_alignment (GTK_CELL_RENDERER (gtk_renderer), &xalign, &yalign);
+  if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
+    xalign = 1.0 - xalign;
+  x_offset = MAX (0, xalign * (width - min_size.width));
+  y_offset = MAX (0, yalign * (height - min_size.height));
 
   layout = create_pango_layout (gtk_renderer, widget);